# coding=utf8

# Copyright 2018 JDCLOUD.COM
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# NOTE: This class is auto generated by the jdcloud code generator program.


class RuleSpec(object):

    def __init__(self, host=None, path=None, action=None, backendId=None, redirectActionSpec=None):
        """
        :param host: (Optional) 域名，用于匹配URL的host字段,支持输入IPv4地址和域名。域名支持精确匹配和通配符匹配：1、仅支持输入大小写字母、数字、英文中划线“-”和点“.”，最少包括一个点"."，不能以点"."和中划线"-"开头或结尾，中划线"-"前后不能为点"."，不区分大小写，且不能超过110字符；2、通配符匹配支持包括一个星"\*"，输入格式为\*.XXX或XXX.\*，不支持仅输入一个星“\*”。 host缺省为空（含义是匹配所有） ，path缺省为/\*（含义是匹配所有）
        :param path: (Optional) URL访问路径，用于匹配URL的path字段。URL路径支持精确匹配和前缀匹配：1、必须以/开头，仅支持输入大小写字母、数字和特殊字符：$-_.+!'()%:@&=/，区分大小写，且不能超过128字符；2、前缀匹配支持包括一个星"\*"，输入格式为/XXX\*或/\*，仅输入"/"表示精确匹配。 host缺省为空（含义是匹配所有） ，path缺省为/\*（含义是匹配所有）
        :param action: (Optional) 匹配转发规则后执行的动作，取值为Forward或Redirect。默认为Forward
        :param backendId: (Optional) 后端服务的Id。当action选择Forward时需配置本参数
        :param redirectActionSpec: (Optional) 重定向动作配置。当action选择Redirect时需配置本参数，且重定向配置参数protocol、port、host、path和query至少配置其一
        """

        self.host = host
        self.path = path
        self.action = action
        self.backendId = backendId
        self.redirectActionSpec = redirectActionSpec
